The background description provided herein is for the purpose of generally presenting the context of the disclosure. Unless otherwise indicated herein, the materials described in this section are not prior art to the claims in this application and are not admitted to be prior art by inclusion in this section.
There are many network applications that are required to be compliant with a desired traffic rate, i.e. control the rate at which packets are sent into the network and/or other processing blocks within the device. This is required to achieve application quality of experience (QoE), network QoS and fairness of network bandwidth across multiple user flows of a device or a group of devices. A lot of applications do not have access to hardware accelerators that can perform elaborate traffic bandwidth management. When a device or a group of devices homes several thousands to millions of user flows, there is a need for efficient software traffic shaping implementations.
Traffic shaping is a traffic management technique that enforces a desired output traffic profile for the traffic generating entities, such as user flows. The profile consists of the amount of traffic in a given duration and inter packet departure characteristics for the traffic generating entities. This involves delaying some incoming packets to bring the packet output of the traffic generating entities into compliance with the desired traffic profile. Existing solutions to traffic shaping include leaky bucket, token bucket and combinations thereof. These include a multi stage functionality in which the incoming packets of the traffic generating entities are buffered in the first stage and released in a regulated fashion in the second stage, and there is a third component of generating the regulating timer triggers. Different algorithms, such as leaky bucket or token buckets are used to regulate the traffic. Such implementations are expensive to implement.